#include "Int32.h"

Int32::Int32(int valor) {
    this->_valor = valor;
    this->_punteroADato = &_valor;
}

Int32::Int32(string valor) {
    this->_valor = atoi(valor.c_str());
    this->_punteroADato = &_valor;
}

Int32::Int32(void* punteroADato){
    this->_punteroADato = punteroADato;
}

void Int32::comparar(TipoDeDato& tipoDeDato,ostream& out) {
    int* otroValor = (int*) tipoDeDato.damePunteroADato();
    if ( _valor != *otroValor )
        out << "Se esperaba " << _valor << " y se obtuvo " << *otroValor << " . Diferencia: " << _valor - (*otroValor) << endl;
}

int Int32::dameValor() {
    return this->_valor;
}

ClaseDeDato Int32::getClass() {
    return C_INTEGER_32;
}
